var montoTotal = new BigDecimal("0");
ClienteInicio = function(){
	var configWindow = {
		add: "clienteInicioAgregarTop",
		edit: "clienteInicioEditarTop",
		save: "clienteInicioGuardarTop",
		remove: "clienteInicioEliminarTop",
		grid: "clienteInicioGrid",
		form: "clienteInicioForm"
	};
	var configWindowBottom = {
			add: "clienteInicioAgregarBottom",
			edit: "clienteInicioEditarBottom",
			save: "clienteInicioGuardarBottom",
			remove: "clienteInicioEliminarBottom"
	};
	return {
		comprarYA: function(){
			Asi.message.progress(Asi.constants.SAVING);
				Ext.getCmp("compraYaForm").getForm().submit({
					url: Asi.constants.CONTEXT_PATH + "/clientePedido/guardar",
	    			timeout: Asi.constants.TIMEOUT_SECONDS,
	    			params: {
	    				"productosQueCompraraLista": ClienteInicio.obtenerIdRegistrosCarritoCompra(),
	    				"clienteId": AsiGen.getUsuarioId()
	    			},
	    			success: function(form, action){
	    				var gridCompra = Ext.getCmp("comprasClienteGrid");
	    				gridCompra.getStore().removeAll();
	    				gridCompra.getStore().sync();
	    				Asi.message.alert(action.result.message);
	    				Ext.getCmp("montoLabel").setText("$--");
	    				montoTotal = new BigDecimal("0")
	    			},
	    			failure: Asi.form.failureProcedure
				});
		},
		obtenerIdRegistrosCarritoCompra: function(){
			var i = 0;
			var gridCompra = Ext.getCmp("comprasClienteGrid");
			var seprarado = "~";
			var gridData = "";
			Ext.each(gridCompra.getStore().getRange(), function(){
				gridData = gridData + Ext.getCmp("comprasClienteGrid").getStore().getRange()[i].data.clienteInicioId + seprarado;
				i++;
          });
			return gridData == "~" ? "":gridData;
		},
		agregarAlCarrito: function(){
			Ext.getCmp("comprasClienteGrid").getStore().add(Ext.getCmp("clienteInicioGrid").getSelectionModel().selected.items[0].data);
			var acumCarro = new BigDecimal(Ext.getCmp("clienteInicioGrid").getSelectionModel().selected.items[0].data.clienteInicioPrecio);
//			console.log(acumCarro);
			montoTotal = montoTotal.add(acumCarro);
			Ext.getCmp("montoLabel").setText("$"+montoTotal);
//			console.log(montoTotal);
			
		},
		eliminarDelCarrito: function(){
			var gridCompra = Ext.getCmp("comprasClienteGrid");
			var sm = Ext.getCmp("comprasClienteGrid").getSelectionModel();
			if(sm.getSelection()[0]){
				var p = {grid:this, sm:sm};
				Asi.message.confirmDelete(function(p){
					var deleteOnServer = !Ext.isEmpty(p.sm.getSelection()[0].get("clienteInicioId"));
					var disminCarro = new BigDecimal(Ext.getCmp("comprasClienteGrid").getStore().data.items[0].data.clienteInicioPrecio);
					montoTotal = montoTotal.subtract(disminCarro);
					Ext.getCmp("montoLabel").setText("$"+montoTotal);
//					console.log(montoTotal);
					gridCompra.store.remove(p.sm.getSelection()[0]);
					if(deleteOnServer) gridCompra.store.destroy();
				},p);
			}else{
				Asi.message.alert("Antes seleccione el registro que desea eliminar.");
			}
		},
		agregarClienteInicio: function(){
			Asi.form.switchButton(configWindow, "add");
			Asi.form.switchButton(configWindowBottom, "add");
//			Ext.getCmp("clienteInicioFechaNacimiento").allowEnable = true;
		},
		editarClienteInicio: function(){
//			Ext.getCmp("clienteInicioFechaNacimiento").allowEnable = false;
			Asi.form.switchButton(configWindow, "edit");
			Asi.form.switchButton(configWindowBottom, "edit");
		},
		eliminarClienteInicio: function(){
			Asi.message.confirmDelete(function(){
				Asi.message.progress("Eliminando Informaci\u00F3n...");
				Ext.Ajax.request({
					timeout: Asi.constants.TIMEOUT_SECONDS,
					url: Asi.constants.CONTEXT_PATH + "/clienteInicio/delete",
					params: {
						clienteInicioId: Asi.utils.getValue("clienteInicioId")
					},
					callback: function(options, success, response){
						Ext.Msg.hide();
						if(success){
							var jsonObject = Asi.utils.ajaxRequestGetJson(response);
							if(jsonObject && jsonObject.success){
								Asi.form.switchButton(configWindow, "remove");
								Asi.form.switchButton(configWindowBottom, "remove");
								Asi.message.alert(jsonObject.message);
								Asi.form.clearAndDisable("clienteInicioForm");
								if(jsonObject.clienteInicios){
			    					Ext.getCmp("clienteInicioGrid").getStore().loadData(jsonObject.clienteInicios);
								}
								return;
							}
							jsonObject = jsonObject || {};
							Asi.message.alertInvalid(jsonObject.message || Asi.constants.DEFAULT_ERROR_MESSAGE);
							return;
						}
						Asi.message.alertInvalid(Asi.constants.DEFAULT_ERROR_MESSAGE);
					}
				});
			});
		},
		guardarClienteInicio: function(){
			Asi.message.progress("Guardando Informaci\u00F3n...");
			Ext.getCmp("clienteInicioForm").getForm().submit({
    			url: Asi.constants.CONTEXT_PATH + "/clienteInicio/save",
    			timeout: Asi.constants.TIMEOUT_SECONDS,
    			params: {
//    				"clienteInicio.kycPersonaJuridica.kyc.kycId": AsiKYC.getKycId(),
//    				"clienteInicio.kycPersonaJuridica.kycPersonaJuridicaId": AsiKYC.getKycPersonaJuridicaId()
    			},
    			success: function(form, action){
    				Asi.form.switchButton(configWindow, "save");
    				Asi.form.switchButton(configWindowBottom, "save");
    				Asi.message.alert(action.result.message);
    				Asi.form.setDisable("clienteInicioForm", true);
    				if(action.result.clienteInicios){
    					Ext.getCmp("clienteInicioGrid").getStore().loadData(action.result.clienteInicios);
    					Ext.getCmp("clienteInicioGrid").getSelectionModel().select(action.result.clienteInicioIndex);
    				}
    			},
    			failure: Asi.form.failureProcedure
   			});
		},
		
		init: function(config){
			var clienteInicios = config.clienteInicios;
			var configToReturn = {};
			var storeMaterial = new Ext.data.SimpleStore({
				data: config.ctgColor || [],
				fields: [
				         "ctgCatalogoId",
				         "ctgCatalogoNombre",
				         "ctgCatalogoPadre",
				         "ctgCatalogoHijo"
				        ]
			});
			configToReturn.items = [];
			configToReturn.menu = AsiBotones.getBotones(AsiGen.getTipoUsuario(), AsiGen.getPantallaId());
			
			
			
			
			
			
			
			
			
			
			configToReturn.items.push({
				flex: 1,
				title: "MI CARRITO DE COMPRAS",
				autoScroll: true,
				xtype: "panel",
				layout: {
				    type: "hbox",
				    /**No debe cambiar align : "stretch" JAMASSSSS**/
				    align : "stretch",
				    pack  : "start"
				},
				items:[
				       
				       
				{
				    xtype: 'panel',
				    title: 'Productos',
				    collapsible: true,
				    collapseDirection: 'left',
				    html:'<div align="center" style="background-color:white;" ><img src="http://2.bp.blogspot.com/-G0fW2Qtpipg/T7Pmxec12NI/AAAAAAAAN68/4Vr2gjeRj0o/s1600/Fondos+de+pantalla+con+bellos+rincones+de+la+naturaleza+(116).jpg" ></div>',
				    layout: 'fit',
				    align: 'center',
				    flex: 1,
				    items:[
							{
								align: 'stretch',
								xtype: "grid",
								id: "clienteInicioGrid",
								height: 150,
								minHeight: 150,
								store: new Ext.data.SimpleStore({
							    	data: config.ctgProductos || [],
							    	fields: [
										"clienteInicioId",
										"clienteInicioNombre",
										"clienteInicioDescripcion",
										"clienteInicioActivo",
										"clienteInicioCodigo",
										"clienteInicioPrecio",
										"clienteInicioTipo",
										"ctgProductoImage",
										"ctgProductoColorId",
										"ctgProductoColorNombre",
										"ctgProductoMaterialId",
										"ctgProductoMaterialNombre",
										"ctgProductoTamanioId",
										"ctgProductoTamanioNombre"
							        ]
							    }),
							    columns: [
							        {header: "Nombre",  dataIndex: "clienteInicioNombre", Width: 180, flex: 1},
							        {header: "Codigo",  dataIndex: "clienteInicioCodigo", align: "stretch", flex: 1},
							        {header: "Precio",  dataIndex: "clienteInicioPrecio", align: "stretch", flex: 1, renderer:  Ext.util.Format.numberRenderer('$0,000.00')}
							    ],
							    features: [{
							    	   ftype: "grouping",
							    	   enableNoGroups: false,
							    	   groupHeaderTpl: 'Tipo de Producto: {clienteInicioTipo}'
							        }],
							    listeners: {
							    	selectionchange: function(model, records){
							    		if(!records || records.length <= 0) return;
							    		var record = records[0];
							    		if(record != null){
							    			Ext.getCmp("displayimage").setSrc("ctgProducto/viewProductoImagen?codigo="+ Ext.getCmp("clienteInicioGrid").getSelectionModel().selected.items[0].data.clienteInicioId);
							    			Ext.getCmp("codigoProducto").setText(Ext.getCmp("clienteInicioGrid").getSelectionModel().selected.items[0].data.clienteInicioCodigo);
							    			Ext.getCmp("nombreProducto").setText(Ext.getCmp("clienteInicioGrid").getSelectionModel().selected.items[0].data.clienteInicioNombre);
							    			Ext.getCmp("precioProducto").setText("$" + Ext.getCmp("clienteInicioGrid").getSelectionModel().selected.items[0].data.clienteInicioPrecio);
							    			Ext.getCmp("colorProducto").setText(Ext.getCmp("clienteInicioGrid").getSelectionModel().selected.items[0].data.ctgProductoColorNombre);
							    			Ext.getCmp("materialProducto").setText(Ext.getCmp("clienteInicioGrid").getSelectionModel().selected.items[0].data.ctgProductoMaterialNombre);
							    			Ext.getCmp("tamanioProducto").setText(Ext.getCmp("clienteInicioGrid").getSelectionModel().selected.items[0].data.ctgProductoTamanioNombre);
							    			
							    			Ext.getCmp("descripcionProducto").setText(Ext.getCmp("clienteInicioGrid").getSelectionModel().selected.items[0].data.clienteInicioDescripcion);
							    		}
							    		Asi.form.switchButton(configWindow, "rowclick");
							    		Asi.form.switchButton(configWindowBottom, "rowclick");
							    	},
							    	afterrender: function(){
							    		if(this.store.data.items.length > 0) Asi.grid.selectFirstRow(this);
							    		Asi.form.switchButton(configWindow, "cancelNotClear");
							    		Asi.form.switchButton(configWindowBottom, "cancelNotClear");
							    	}
							    }
							}
				          ]
				}, {
				    xtype: 'panel',
				    title: 'Descripcion del Producto',
				    flex: 2,
				    collapsible: true,
				    collapseDirection: 'bottom',
				    align: 'center',
				    items:[
							{
								xtype: 'panel',
							    region: 'center',
							    id:'centerPanel',
							    autoScroll: true,
							    layout : {
									type : "table",
									columns : 6,
									tableAttrs : {
										style : {
											width : "730px",
											"margin-top" : "15px",
											"margin-top" : "5px",
											"margin-bottom" : "40px"
										},
										align : "center"
									}
								},
								defaults : Asi.utils.defaults({
									width : 230,
									colspan : 2
								}),
							    items: [
							    {xtype: "hidden"},
								{
								    xype:'container',
								    region: 'center',
								    layout: "fit",
								    cls: "label_headerLecterImage",
								    width: 200,
								    height: 200,
									items:[
									       {
										        xtype:'image',
										        id: 'displayimage',
										        autoScroll: true
										    }
									       ]
								 },
								 {xtype: "hidden", colspan: 6}
								 
							    ]
							},
							
							{
						        xtype:'fieldset',
						        width : "730px",
						        title: 'Ocultar Descripcion', // title or checkboxToggle creates fieldset header
						        collapsible: true,
						        collapsed: false, // fieldset initially collapsed
						        layout:'absolute',
						        align: 'center',
						        items :[
										{
											xtype: 'panel',
										    region: 'center',
										    autoScroll: true,
										    layout : {
												type : "table",
												columns : 6,
												tableAttrs : {
													style : {
														width : "730px",
														"margin-top" : "15px",
														"margin-top" : "5px",
														"margin-bottom" : "40px"
													},
													align : "center"
												}
											},
											defaults : Asi.utils.defaults({
												width : 230,
												colspan : 2
											}),
										    items: [
						 
						                
						                
						 
					    {xtype: "label", text:"Codigo", cls: "lblHeaderLecter1", width : 230, colspan : 2},
					    {xtype: "label", text:"Nombre", cls: "lblHeaderLecter1", width : 230, colspan : 2},
					    {xtype: "label", text:"*Precio Incluye IVA ", cls: "lblHeaderLecter1", width : 230, colspan : 2},
					    {xtype: "label", id: "codigoProducto", cls: "tdTitleL", width : 230, colspan : 2},
					    {xtype: "label", id: "nombreProducto", cls: "tdTitleL", width : 230, colspan : 2},
					    {xtype: "label", id: "precioProducto", cls: "tdTitleL", width : 230, colspan : 2},
					    
					    {xtype: "label", text:"Color", cls: "lblHeaderLecter1", width : 230, colspan : 2},
					    {xtype: "label", text:"Material", cls: "lblHeaderLecter1", width : 230, colspan : 2},
					    {xtype: "label", text:"Tamano", cls: "lblHeaderLecter1", width : 230, colspan : 2},
					    {xtype: "label", id: "colorProducto", cls: "tdTitleL", width : 230, colspan : 2},
					    {xtype: "label", id: "materialProducto", cls: "tdTitleL", width : 230, colspan : 2},
					    {xtype: "label", id: "tamanioProducto", cls: "tdTitleL", width : 230, colspan : 2},
					    
					    {xtype: "label", text:"Descripcion", cls: "lblHeaderLecter1", 	colspan: 6},
					    {xtype: "label", id: "descripcionProducto", cls: "tdTitleL", colspan: 6, width: 730},
					    
					    {xtype: "label", text:"", cls: "lblHeaderLecter1", colspan: 6},
					    {xtype: "hidden", colspan: 2},
					    {
							xtype: "button",
							colspan: 2,
							iconCls: Asi.constants.icons.SHOPPIN_CAR,
							cls: "background",
							tooltip: "Agregar producto",
							text: "Agregar al carrito",
							handler : ClienteInicio.agregarAlCarrito
						},
						{xtype: "hidden", colspan: 2}
						
						
						
						
						
						
						
						
						
						]},
						]}
				    ]}, {
					 xtype: 'panel',
					    title: 'Compras',
					    layout: 'absolute',
					    collapsible: true,
					    collapseDirection: 'left',
					    flex: 1,
					    items:[
									{
										xtype: "form",
										id: "compraYaForm",
										flex: 1,
									    border: false,
									    autoScroll: false,
									    dockedItems : [ {
											xtype : "toolbar",
											dock : "top",
											items : [ "->", {
												text : "Comprar",
												tooltip: "Clic para Comprar",
												iconCls : Asi.constants.icons.COINS_ICON,
												handler : ClienteInicio.comprarYA
											},{
												text : "Eliminar",
												tooltip: "Quitar de la lista",
												iconCls : Asi.constants.icons.DELETE_ICON,
												handler : ClienteInicio.eliminarDelCarrito
											} ]
										}, {
											xtype : "toolbar",
											dock : "bottom",
											items : ["->",
										   {
												text : "Comprar",
												tooltip: "Clic para Comprar",
												iconCls : Asi.constants.icons.COINS_ICON,
												handler : ClienteInicio.comprarYA
											}, {
												text : "Eliminar",
												tooltip: "Quitar de la lista",
												iconCls : Asi.constants.icons.DELETE_ICON,
												handler : ClienteInicio.eliminarDelCarrito
											} ]
										} ],
									    items: [
									
												{
													align: 'stretch',
													region: "right",
													xtype: "grid",
													id: "comprasClienteGrid",
													height: 150,
													minHeight: 150,
													store: new Ext.data.SimpleStore({
												    	data: [],
												    	fields: [
															"clienteInicioId",
															"clienteInicioNombre",
															"clienteInicioDescripcion",
															"clienteInicioActivo",
															"clienteInicioCodigo",
															"clienteInicioPrecio",
															"clienteInicioTipo",
															"ctgProductoImage"
												        ]
												    }),
												    columns: [
												        {header: "Nombre",  dataIndex: "clienteInicioNombre", Width: 180, flex:1},
												        {header: "Precio",  dataIndex: "clienteInicioPrecio", align: "stretch", renderer:  Ext.util.Format.numberRenderer('$0,000.00'), flex:1}
												    ],
												    listeners: {
												    	selectionchange: function(model, records){
												    		if(!records || records.length <= 0) return;
												    		var record = records[0];
												    		if(record != null){
												    			
												    		}
												    	}
												    }
												},
												{xtype:'label',text: "$--",cls: "ctg_label",id:"montoLabel"},
												
												{
													xtype : 'panel',
													id : 'first_block',
													html : 
														'<div id="cboxdiv" style="text-align: center; line-height: 0"><div><iframe frameborder="0" width="400" height="104" src="http://www3.cbox.ws/box/?boxid=3410533&amp;boxtag=a7jqew&amp;sec=main" marginheight="2" marginwidth="2" scrolling="auto" allowtransparency="yes" name="cboxmain3-3410533" style="border:#636C75 1px solid;" id="cboxmain3-3410533"></iframe></div><div><iframe frameborder="0" width="400" height="96" src="http://www3.cbox.ws/box/?boxid=3410533&amp;boxtag=a7jqew&amp;sec=form" marginheight="2" marginwidth="2" scrolling="no" allowtransparency="yes" name="cboxform3-3410533" style="border:#636C75 1px solid;border-top:0px" id="cboxform3-3410533"></iframe></div></div>'
												}
												
									
									]
									}
					           ]
				}
				      
						
						
						
						
						
				      
						
						
						
						
						
						
						
						
						
						
						
						
						
						
				       ]
				
			});
			return configToReturn;
		}
	};
}();